package principle.inversion;

/**
 * 依赖倒转原则
 * 尽量面向接口编程
 * @author shkstart
 * @create ${year}-${month}-${day}-${time}
 */
public class dependencyInversion {
    public static void main(String[] args) {
        Person p = new Person();
        p.receive(new Email());
    }
}
class Email{
    public String getInfo(){
        return "电邮信息：fuck world";
    }
}
//完成person接收消息的功能
//方式一
//容易想到和实现
//如果获取的是微信或别的，就要新增类和接收方法
//解决：引入抽象接口，表示接收者person类和接口发生依赖
//     这样Email等消息就属于接收范围，各自实现接口，符合依赖倒转
class Person{
    public void receive(Email email){
        System.out.println(email.getInfo());
    }
}